package com.example.administrator.wxapi;







import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.example.administrator.commonlibrary.utils.LogUtil;
import com.example.administrator.commonlibrary.utils.ToastUtils;
import com.example.administrator.commonlibrary.wholehelper.AppConstants;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
/**
 * @author wang_hong_wei
 * @description 这个界面用于显示第三方app通过微信支付的结果
 * @Date 2018-5-11
 */

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
	
	private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";
	
    private IWXAPI api;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
      //  setContentView(R.layout.pay_result);
    	api = WXAPIFactory.createWXAPI(this, AppConstants.WX_PAY_ID);
        api.handleIntent(getIntent(), this);
    }

	@Override
	protected void onNewIntent(Intent intent) {
		super.onNewIntent(intent);
		setIntent(intent);
        api.handleIntent(intent, this);
	}

	@Override
	public void onReq(BaseReq req) {
	}
//4.支付结果的回调
	@Override
	public void onResp(BaseResp resp) {
		LogUtil.d("onPayFinish,errCode=" + resp.errCode);
		LogUtil.d("onPayFinish,openId=" + resp.toString());
		LogUtil.d("onPayFinish,transaction=" + resp.transaction);
		LogUtil.d("onPayFinish,getType=" + resp.getType());
		if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
			if (resp.errCode == 0) {
				//如果支付成功则去后台查询支付结果再展示用户实际支付结果。
				// 注意一定不能以客户端返回作为用户支付的结果，
				// 应以服务器端的接收的支付通知或查询API返回的结果为准。代码示例如下：
				ToastUtils.showToast("支付成功");
				finish();
			} else if (resp.errCode == -1) {
				ToastUtils.showToast("支付失败，请重试");
				finish();
			} else if (resp.errCode == -2) {
				ToastUtils.showToast("取消支付");
				finish();
			}
		}
	}
	// ===========支付使用流程============
	/*
	1.检查微信版本是否支持支付
boolean isPaySupported = api.getWXAppSupportAPI() >= Build.PAY_SUPPORTED_SDK_INT;
	2、注册APPID
商户APP工程中引入微信JAR包，调用API前，需要先向微信注册您的APPID，代码如下：
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);//如果这里不是null，就不用注册,因填APPID
// 将该app注册到微信
msgApi.registerApp("wxd930ea5d5a258f4f");
3、调起支付
商户服务器生成支付订单，先调用统一下单API(详见第7节)生成预付单，
获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码：
IWXAPI api;
PayReq request = new PayReq();
	                        req.appId			= json.getString("appid");
							req.partnerId		= json.getString("partnerid");
							req.prepayId		= json.getString("prepayid");
							req.nonceStr		= json.getString("noncestr");
							req.timeStamp		= json.getString("timestamp");
							req.packageValue	= json.getString("package");
							req.sign			= json.getString("sign");
							req.extData			= "app data"; // optional
api.sendReq(request);
*/

}